package com.suray.basic.wcs.path.core;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

/**
 * @author Shaozn
 */
public class Path {
    private Node start;
    private Node end;
    private String direction;
    private Integer offset;
    private List<Node> nodeList = new ArrayList<>();
    private List<Node> nodePlusList;
    private Set<Node> lockedNodeSet;
    private Set<Node> avoidLockedNodeSet;

    public Path() {
    }

    public Path(Node start, Node end) {
        this.start = start;
        this.end = end;
    }

    public Node getStart() {
        return start;
    }

    public void setStart(Node start) {
        this.start = start;
    }

    public Node getEnd() {
        return end;
    }

    public void setEnd(Node end) {
        this.end = end;
    }

    public String getDirection() {
        return direction;
    }

    public void setDirection(String direction) {
        this.direction = direction;
    }

    public Integer getOffset() {
        return offset;
    }

    public void setOffset(Integer offset) {
        this.offset = offset;
    }

    public List<Node> getNodeList() {
        return nodeList;
    }

    public Path setNodeList(List<Node> nodeList) {
        this.nodeList = nodeList;
        return this;
    }
    public Set<Node> getLockedNodeSet() {
        return lockedNodeSet;
    }
    public void setLockedNodeSet(Set<Node> lockedNodeSet) {
        this.lockedNodeSet = lockedNodeSet;
    }
    public List<Node> getNodePlusList() {
        return nodePlusList;
    }
    public void setNodePlusList(List<Node> nodePlusList) {
        this.nodePlusList = nodePlusList;
    }

    public Set<Node> getAvoidLockedNodeSet() {
        return avoidLockedNodeSet;
    }

    public void setAvoidLockedNodeSet(Set<Node> avoidLockedNodeSet) {
        this.avoidLockedNodeSet = avoidLockedNodeSet;
    }
    @Override
    public String toString() {
        return "start=" + start + ", end=" + end + ", direction=" + direction;
    }

}
